import router from '@/router';
import axios from 'axios'
import { ElNotification } from 'element-plus'

const http = axios.create({
    baseURL: 'http://localhost:8081',
    timeout: 1000,
    headers: {
        "Content-Type": "application/json",
        "Authorization": localStorage.getItem("token") || ""
    }

});

http.interceptors.request.use(function (config) {


    // 在发送请求之前做些什么
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器
http.interceptors.response.use(function (response) {

    const { code, msg } = response.data;

    if (code != 200) {
        
        ElNotification({
            type: 'error',
            message: msg,
        })

        return;
    }

    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么
    return response.data;
}, function (error) {

    const { code, msg } = error.response.data;

    console.log("err", error)

    if (4005 == code) {
        ElNotification({
            type: 'error',
            message: "登录过期，请重新登录",
        })
        router.replace("/login")
    } else {

        ElNotification({
            type: 'error',
            message: msg
        })
    }
    router.replace("/login")

    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    return Promise.reject(error);
});

export default http;